package com.awccis.customer.dao;

import com.awccis.customer.model.CustomerInfo;
import com.awccis.customer.model.UsualAddr;
import com.awccis.customer.model.adver.AdverImgLocationBean;
import com.awccis.customer.model.order.AppraiseBean;
import com.awccis.customer.model.order.OrderBean;
import com.awccis.driver.model.DriverInfo;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * @Author: 纯牛奶丶
 * @Date: 2018-03-30 0030 下午 09:50
 * @Since: REDMI.txt.0
 * @Decription: 乘客端业务数据接口
 **/
@Repository
public interface CustomerDao {
    
    /**
     * 验证是否已经登录
     * @param customerPhone 乘客登录的手机号
     * @return 登录状态
     */
    Integer selectLoginStatus(String customerPhone);
    /**
     * 设置登录状态为已登录1
     * @param customerPhone 乘客登录的手机号
     * @return 登录状态
     */
    Integer setOnline(String customerPhone);
    /**
     * 设置登录状态为未登录0
     * @param customerInfo 乘客登录的手机号
     * @return 登录状态
     */
    Integer setOffline(CustomerInfo customerInfo);
    /**
     * 查询验证登陆
     * @param customerInfo customerInfo
     * @return CustomerInfo
     */
    CustomerInfo selectCustomerInfo(CustomerInfo customerInfo);
    
    /**
     * 添加注册信息
     * @param customerInfo customerInfo
     * @return Integer
     */
    Integer insertCustomerInfo(CustomerInfo customerInfo);

    /**
     * 根据phone更改customer信息
     * @param customerInfo customer
     * @return 影响行数
     */
    Integer updateCustomerInfoByPhone(CustomerInfo customerInfo);
    
    /**
     * 插入初始初始订单信息
     * @param orderBean orderBean
     * @return Integer
     */
    Integer insertOrderInfoInit(OrderBean orderBean);
    
    /**
     * 查询历史订单总数
     * @param map customerInfo
     * @return Integer
     */
    Integer selectHistoryOrderCount(Map map);
    /**
     * 查询历史订单
     * @param map customerInfo
     * @return Integer
     */
    List<Map> selectHistoryOrder(Map map);
    
    /**
     * 查询评价
     * @param orderId orderId
     * @return AppraiseBean
     */
    AppraiseBean selectAppraise(Integer orderId);
    
    /**
     * 插入评价
     * @param appraiseBean appraiseBean
     * @return Integer
     */
    Integer insertAppraise(AppraiseBean appraiseBean);
    
    /**
     * 查询常用地址信息
     * @return List<UsualAddr>
     */
    List<UsualAddr> selectUsualAddr();
    
    /**
     * 根据地址名称返回地址详细信息、经纬度
     * @param addrName addrName
     * @return List<UsualAddr>
     */
    UsualAddr selectUsualAddrByName(String addrName);

    /**
     * 根据起始地经纬度获取前10相对距离靠前的司机
     * @param map
     * @return 司机列表信息
     */
    List<DriverInfo> selectDriverTop10(Map map);

    /**
     * 获取当前九张广告图片的位置
     * @return 查询的结果
     */
    List<AdverImgLocationBean> selectCurrentLogoPath();

    /**
     * 从数据库t_logo表随机获取一个广告图片
     * @return list
     */
    List<AdverImgLocationBean> selectOneRandomLogoPath();

    /**
     * 选取所有广告图片
     * @return list
     */
    List<AdverImgLocationBean> selectAllLogoPath();
}


